#ifndef _GRATE_SIMPLE_H_
#define _GRATE_SIMPLE_H_

#include "dfa.h"
#include "input_data.h"
#include "grate_config.h"

double calc_grate_simple(dfa * DFA, const input_data & INPUT, const grate_config & CONFIG);

//Returns the number of strongly-connected components, assigns scc numbers in the array scc
int tarjan_calc_scc(dfa * DFA, const input_data & INPUT, char * scc);

// Returns grate of scc with number scc_id, also sets the values of scc_size and scc_edgnum of this scc
double calc_scc (dfa * DFA, const input_data & INPUT, const grate_config & CONFIG, char * scc, int scc_id, int & scc_size, int & scc_edgnum);

#endif